package com.lengxf.pay.icbc.bean.query;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.lengxf.pay.icbc.bean.base.BaeCommonRes;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = true)
public class QueryRes extends BaeCommonRes {

    //交易结果标志：0：支付中请稍后查询，1：支付成功，2：支付失败，3：已撤销，4：撤销中请稍后查询，5：已全额退款，6：已部分退款，7：退款中请稍后查询
    @JsonProperty("pay_status")
    private String payStatus;

    //用户唯一标识
    @JsonProperty("cust_id")
    private String custId;

    //屏蔽后的银行卡号(付款码)
    @JsonProperty("card_no")
    private String cardNo;

    //订单总金额，单位：分
    @JsonProperty("total_amt")
    private String totalAmt;

    //积分抵扣金额，单位：分
    @JsonProperty("point_amt")
    private String pointAmt;

    //电子券抵扣金额，单位：分
    @JsonProperty("ecoupon_amt")
    private String ecouponAmt;

    //优惠立减金额（商户部分），单位：分
    @JsonProperty("mer_disc_amt")
    private String merDiscAmt;

    //优惠券金额，单位：分
    @JsonProperty("coupon_amt")
    private String couponAmt;

    //银行补贴金额，单位：分
    @JsonProperty("bank_disc_amt")
    private String bankDiscAmt;

    //用户实际扣减金额，单位：分
    @JsonProperty("payment_amt")
    private String paymentAmt;

    //商户系统订单号
    @JsonProperty("out_trade_no")
    private String outTradeNo;

    //行内系统订单号
    @JsonProperty("order_id")
    private String orderId;

    //支付完成时间，yyyyMMdd格式，
    @JsonProperty("pay_time")
    private String payTime;

    //总优惠金额，，其值=优惠立减金额（商户部分）+银行补贴金额，单位：分
    @JsonProperty("total_disc_amt")
    private String totalDiscAmt;

    //发卡行名称
    @JsonProperty("bank_name")
    private String bankName;

    //渠道标识：91-微信支付、92-支付宝、93-银联二维码、99-工银二维码、94-数字人民币
    @JsonProperty("channel")
    private String channel;

    //商户附加数据
    @JsonProperty("attach")
    private String attach;

    //第三方支付机构的客户编号
    @JsonProperty("tp_cust_id")
    private String tpCustId;

    //工行交易检索号
    @JsonProperty("trx_ser_no")
    private String trxSerNo;

    //第三方订单号
    @JsonProperty("tp_order_id")
    private String tpOrderId;

    //支付宝账号
    @JsonProperty("buyer_logon_id")
    private String buyerLogonId;

    //微信子用户标识
    @JsonProperty("sub_open_id")
    private String subApenId;

    //付款机构编码
    @JsonProperty("bank_type")
    private String bankType;

    //优惠详情：JSON数组格式大字段，
    // 当channel字段返回为91-微信支付时，字段说明如下：
    // promotion_id：券ID，str(32)；
    // name：优惠名称，str(64)，
    // scope：优惠范围，str(32)；
    // type：优惠类型，str(32)；
    // amount：优惠券面额，int；
    // activity_id：活动ID，str(32)；
    // wxpay_contribute：微信出资，str(32)；
    // merchant_contribute：商户出资，str(32)；
    // other_contribute：其他出资，str(32)；
    // goods_detail：单品列表，json对象，
    // 字段说明如下：
    // goods_id：商品编码，str(32)；
    // goods_remark：商品备注，str(128)；
    // discount_amount：商品优惠金额，int；
    // quantity：商品数量，int；
    // price：商品价格，int。
    // 当channel字段返回为92-支付宝支付时，字段说明如下：
    // goods_id：商品编码，
    // goods_name：商品名称，
    // discount_amount：商品优惠金额，
    // voucher_id：券ID
    @JsonProperty("promotion_detail")
    private String promotionDetail;

}
